Systems are composed of components. Components can be represented by models of various sorts for purposes of simulation. The component models can be characterized by quantitative values, some of which are considered as being constant (i.e. they cannot be changed for design purposes), and others of which are considered as variable (i.e. “variables”) for the purpose of adjusting system performance. The number of variables is the dimensionality of a variable space (i.e. “design space”) within which sample sets of variable values resulting in desired system performance may be sought. Generally, a separate simulation is required for each sample. In order to more or less uniformly sample a region of design space, the number of samples, and therefore also the number of simulations, increases more or less superlinearly (e.g. exponentially) with the number of variables, or equivalently, the dimensionality of the design space. A prohibitively large simulation time requirement can easily result from the exploration of the design space for the purpose of determining practical system parameters for required performance because of the superlinear dependence of the number of samples to be simulated on the dimensionality of the design space.
One approach to manage this problem is to limit the number of variables in any given design space exploration, by fixing the values of some of the variables. This can reduce design space dimensionality, and correspondingly the execution time for necessary simulation, but it can also constrain the design space exploration so that samples of variable values corresponding to superior circuit performance may be missed. Additionally, the choice of which particular variables to be fixed for this approach may be difficult to determine a priori because it is not easily guided by a “designer's intuition” (i.e., expertise based upon a designer's prior experience with subcircuit building blocks). Another approach is to limit the size, but not the dimensionality, of the design space by constraining ranges of values for at least some variables. This can also result in a smaller design space to explore, and consequently reduce simulation time. Unfortunately, the best samples of variable values for system performance may lie outside of the explored region of design space.
It is therefore desirable to develop a method for system design that reduces design space dimensionality and therefore required simulation time, while also reducing the risk of missing sets of variable values corresponding to desired system performance, and while potentially and beneficially making use of a designer's intuition.